// pages/order/order.js
var util = require('../../utils/util.js');
const app = getApp()

Page({

  /**
   * 页面的初始数据
   */
  data: {
    StatusBar: app.globalData.StatusBar,
    CustomBar: app.globalData.CustomBar,
    Custom: app.globalData.Custom,
    TabCur: 0,
    scrollLeft: 0
  },
  
  tabSelect(e) {
    this.setData({
      TabCur: e.currentTarget.dataset.id,
      // scrollLeft: (e.currentTarget.dataset.id - 1) * 60
    })
  },
  ceshi() {
    const db = wx.cloud.database()
    const _ = db.command
    let curDate = new Date();
    console.log(curDate)
    db.collection("configs").where({
      _id: "b75ec551-eddd-4830-a830-5af35af0c7cb"
      // _openid: "ohi2m5ITTPWn8NRlT9g5bi3xzJlE"
    }).get({
      success(res) {
        console.log(res)
      }
    })

  },
  show_yx: function (res) {
    wx.setClipboardData({
      data: res.currentTarget.dataset.link,
      success: res => {
        wx.showToast({
          title: '延旭未来，改变既是现在!  微信号已复制:18580015335',
          icon: "none",
          duration: 1000,
          mask: true

        })
      }
    })
  },

  update_oder_status(status, _id) {
    var that = this
    console.log(status, _id)
    //  return
    //更新订单状态 
    const db = wx.cloud.database()
    const _ = db.command
    db.collection('oder_Lists').doc(_id).update({
      data: {
        order_status: status,
        // 更新支付状态时，同时更新支付时间戳
        timestamp: Date.parse(new Date()),
      },
      success() {
        wx.hideLoading()
        // 刷新页面
        // 待优化  可以在数据库修改后只改本地一个数据不用刷新页面
        that.onShow()
      },
      fail(res) {
        wx.showToast({
          title: '更新失败！',
          icon: "none",
          duration: 1500,
          mask: true

        })
      },
      complete(res) {
        console.log(res)
      }

    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    wx.showLoading({
      title: "加载中！",
      mask: true
    })


  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    var that = this

    const db = wx.cloud.database()

    db.collection("oder_Lists").where({
      // _openid: app.globalData.openid
      _openid: wx.getStorageSync('openid')
    }).orderBy('timestamp', 'desc')
      .limit(30)
      // 暂时限制30个后期优化做分页
      .get({
        success(res) {
          if (res.data.length > 0) {
            that.setData({
              oder_lists: res.data
              // _id: res.data[0]._id,
              // num: res.data[0].status
            })


          }
          console.log(res)
        },
        fail(res) {
          console.log(res)

        },
        complete(res) {
          console.log(res)
          wx.showLoading({
            title: '刷新完成!',
            mask: true

          })
          // 关闭加载中！
          setTimeout(function () {
            wx.hideLoading()
          }, 500)

        }
      })




  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */

  //下拉刷新

  // onPullDownRefresh: function (res) {
  //   console.log("下拉")
  //   wx.showNavigationBarLoading() //在标题栏中显示加载

  //   //模拟加载
  //   setTimeout(function () {
  //     // complete
  //     wx.hideNavigationBarLoading() //完成停止加载
  //     wx.stopPullDownRefresh() //停止下拉刷新
  //   }, 500);
  // },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  oncemore(res) {
    console.log(res)
    console.log(res)
    wx.switchTab({
      url: '/pages/index/index',
    })
    // 待优化：后期跳转页面带参直接进入

  },
  to_pay(res) {
    var that = this
   
    wx.showLoading({
      title: '支付中...',
      icon: "none",
      mask: true
    })
    console.log(res)
    console.log(res.currentTarget.dataset.info)

    var oder_info = res.currentTarget.dataset.info
    console.log(parseInt((parseFloat(oder_info.expresss_fee_num).toFixed(2)) * 100))
    console.log(oder_info.oder_no)
    console.log(parseInt(oder_info.oder_no))
    // 查询订单号状态
    wx.cloud.callFunction({
      name: "search_oder",
      data: {
        orderid: "" + parseInt(oder_info.oder_no),

      },
      success(res) {
        console.log("订单查询结果", res.result)
        if (res.result.trade_state_desc == "支付成功"){
          // 订单支付成功 更新订单状态
          that.update_oder_status(1, oder_info.oder_no)
        }
      },
      fail(res) {
        console.log("提交失败", res)
      }
    })
   
    // return
    // 支付开始

    console.log(parseInt((parseFloat(oder_info.expresss_fee_num).toFixed(2)) * 100))
    console.log(oder_info.express_company + " 快递代取订单请注意！")
    console.log(oder_info.express_company_id)

    console.log(oder_info.oder_no)
    console.log()
    console.log()

    if (oder_info.express_company_id == 18) {
      wx.showToast({
        title: '邮寄订单',
        icon:"none"
      })
      wx.showLoading({
        title: '支付中...',
        icon: "none",
        mask: true
      })
      
      console.log(oder_info)

      wx.cloud.callFunction({
        name: "pay",
        data: {
          desc: oder_info.building_number + " 快递—邮寄—订单请注意！",
          orderid: "" + oder_info.oder_no,
          money: parseInt((parseFloat(oder_info.expresss_fee_num).toFixed(2)) * 100)
        },
        success(res) {
          console.log("提交成功", res.result)
          //that.pay(res.result)
          var payData = res.result
          //官方标准的支付方法
          wx.requestPayment({
            timeStamp: payData.timeStamp,
            nonceStr: payData.nonceStr,
            package: payData.package, //统一下单接口返回的 prepay_id 格式如：prepay_id=***
            signType: 'MD5',
            paySign: payData.paySign, //签名
            success(res) {
              console.log("支付成功", res)
              // 支付成功更新订单状态为1
              that.update_oder_status(1, oder_info.oder_no)
            },
            fail(res) {

              if (res.errMsg == "requestPayment:fail cancel") {
                wx.showToast({
                  title: '用户取消',
                  icon: "none"
                })
              } else {
                wx.showToast({
                  title: '支付失败',
                  icon: "none"
                })
              }
            },
            complete(res) {
              console.log("支付完成", res)
            }
          })
        },
        fail(res) {
          console.error(res.errCode)
          console.error(res.errMsg )
          console.error(res.error )


          console.log("提交失败", res)
        }
      })
    } else {
      wx.cloud.callFunction({
        name: "pay",
        data: {
          desc: oder_info.express_company + " 快递代取订单请注意！",
          orderid: "" + oder_info.oder_no,
          money: parseInt((parseFloat(oder_info.expresss_fee_num).toFixed(2)) * 100)
        },
        success(res) {
          console.log("提交成功", res.result)
          //that.pay(res.result)
          var payData = res.result
          //官方标准的支付方法
          wx.requestPayment({
            timeStamp: payData.timeStamp,
            nonceStr: payData.nonceStr,
            package: payData.package, //统一下单接口返回的 prepay_id 格式如：prepay_id=***
            signType: 'MD5',
            paySign: payData.paySign, //签名
            success(res) {
              console.log("支付成功", res)
              // 支付成功更新订单状态为1
              that.update_oder_status(1, oder_info.oder_no)
            },
            fail(res) {
              if (res.errMsg=="requestPayment:fail cancel"){
                wx.showToast({
                  title: '用户取消',
                  icon:"none"
                })
                }else{
                wx.showToast({
                  title: '支付失败',
                  icon: "none"
                })
                
              }
            
              console.log("支付失败", res)
            },
            complete(res) {
              console.log("支付完成", res)
            }
          })
        },
        fail(res) {
          wx.hideLoading()
          wx.showToast({
            title: '支付失败',
            icon: "none"
          })
          console.log("提交失败", res)
        }
      })


    }



    //另外一种写法，问题是经常漏单
    // wx.cloud.callFunction({

    //     name: 'getPay',

    //     data: {

    //       total_fee: parseInt((parseFloat(oder_info.expresss_fee_num).toFixed(2)) * 100),

    //       attach: 'anything',

    //       body: oder_info.express_company + " 快递代取订单请注意！",

    //       out_trade_no: oder_info.oder_no,
    //       // 非第一次发起支付调用变形out_trade_no
    //       times: "second"

    //     }

    //   })

    //   .then(res => {

    //     wx.requestPayment({

    //       appId: res.result.appid,

    //       timeStamp: res.result.timeStamp,

    //       nonceStr: res.result.nonce_str,

    //       package: 'prepay_id=' + res.result.prepay_id,

    //       signType: 'MD5',

    //       paySign: res.result.paySign,

    //       success: res => {
    //         // wx.showToast({
    //         //   title: '支付成功！',
    //         //   icon: "none",
    //         //   duration: 1500
    //         // })
    //         wx.showLoading({
    //           title: '支付成功',
    //           mask: true


    //         })
    //         // 更新订单状态为1
    //         const db = wx.cloud.database()
    //         const _ = db.command
    //         var id = 'shop_list[0].shops_detail'
    //         db.collection('oder_Lists').doc(oder_info._id).update({
    //           data: {
    //             order_status: 1,
    //             // 更新支付状态时，同时更新支付时间戳
    //             timestamp: Date.parse(new Date()),
    //           },
    //           success() {
    //             wx.hideLoading()
    //             // 刷新页面
    //             // 待优化  可以在数据库修改后只改本地一个数据不用刷新页面
    //             that.onShow()
    //           },
    //           fail(res) {
    //             wx.showToast({
    //               title: '支付失败！',
    //               icon: "none",
    //               duration: 1500,
    //               mask: true

    //             })
    //           },
    //           complete(res) {
    //             console.log(res)
    //           }

    //         })



    //       },
    //       fail: res => {
    //         console.log(res)

    //         wx.showToast({
    //           title: '支付是失败！',
    //           icon: "none",
    //           duration: 1500,
    //           mask: true

    //         })
    //       },
    //       complete: res => {

    //         console.log(res)

    //       },

    //     })

    //   })


    // // 支付结束



  },
  //实现小程序支付
  pay(payData) {
    console.log(payData)
    // appId: "wx03ceedc2340a7885"
    // nonceStr: "JIhW9Z7nAsFO3HHS"
    // package: "prepay_id=wx102207422989168db571dbec1537472700"
    // paySign: "48762284374046361CBD50ACF7F4442F"
    // signType: "MD5"
    // timeStamp: "1575986862"
    // timestamp: "1575986862"
    //官方标准的支付方法
    wx.requestPayment({
      timeStamp: payData.timeStamp,
      nonceStr: payData.nonceStr,
      package: payData.package, //统一下单接口返回的 prepay_id 格式如：prepay_id=***
      signType: 'MD5',
      paySign: payData.paySign, //签名
      success(res) {
        console.log("支付成功", res)
      },
      fail(res) {
        console.log("支付失败", res)
      },
      complete(res) {
        console.log("支付完成", res)
      }
    })
  },
  // 查询订单状态
  search_odertype(res) {
    var that = this
    console.log(res)
    wx.cloud.callFunction({
      name: "search_oder",
      data: {
        orderid: "" + that.data.orderid,

      },
      success(res) {
        console.log("提交成功", res.result)
      },
      fail(res) {
        console.log("提交失败", res)
      }
    })
  },



  shougon_pay(payData) {
    //官方标准的支付方法
    wx.requestPayment({
      timeStamp: payData.timeStamp,
      nonceStr: "704dWciy1hWbsJ50",
      package: payData.package, //统一下单接口返回的 prepay_id 格式如：prepay_id=***
      signType: 'MD5',
      paySign: payData.paySign, //签名
      success(res) {
        console.log("支付成功", res)
      },
      fail(res) {
        console.log("支付失败", res)
      },
      complete(res) {
        console.log("支付完成", res)
      }
    })
  },
  //   appid: "wx03ceedc2340a7885"
  // device_info: ""
  // mch_id: "1562928571"
  // nonce_str: "704dWciy1hWbsJ50"
  // out_trade_no: "100815439160353000"
  // result_code: "SUCCESS"
  // return_code: "SUCCESS"
  // return_msg: "OK"
  // sign: "4E0FD8448FF30A234E72892FFF09B501"
  // total_fee: "50"
  // trade_state: "NOTPAY"
  // trade_state_desc: "订单未支付"

  onPullDownRefresh: function () {
    var that = this
    wx.showNavigationBarLoading() //在标题栏中显示加载
    wx.showLoading({
      title: '刷新中...',
      mask: true
    })
    that.onShow() //重新加载数据
    //模拟加载  1秒
    setTimeout(function () {　　　　 // complete

      wx.hideNavigationBarLoading() //完成停止加载
      wx.stopPullDownRefresh() //停止下拉刷新

    }, 300);
  },

})